﻿using System;
using System.Collections.Generic;

using System.Text;
using DataTransferObject;

namespace IView
{
    /*
     * Hiện chưa được thiết kế
     * Interface dành cho TaskForm
     * Bên ngoài truy xuất vào các interface này để lấy thông tin từ task Form
     * 
     */
    /// <summary>
    /// 
    /// </summary>
    public interface ITaskForm 
    {
        /// <summary>
        /// Gets the name of the task.
        /// </summary>
        /// <returns></returns>
        String GetTaskName();

        void setStartOnOrAfter(DateTime startOnOrAfter);

        /// <summary>
        /// Sets the name of the task.
        /// </summary>
        void SetTaskName(string s);

        void SetTaskNotes(String s);

        void SetMinimumTimeSplit(int minimumTS);

        int GetMinimumTimeSplit();
        /// <summary>
        /// Gets the start date.
        /// </summary>
        /// <returns></returns>
        string GetStartTime();

        /// <summary>
        /// Gets the end date.
        /// </summary>
        /// <returns></returns>
        string GetEndTime();

        /// <summary>
        /// Gets the priority.
        /// </summary>
        /// <returns></returns>
        int GetPriority();

        /// <summary>
        /// Sets the priority.
        /// </summary>
        /// <param name="s">The s.</param>
        void SetPriority(string s);

        /// <summary>
        /// Gets the total work.
        /// </summary>
        /// <returns></returns>
        int GetTotalWork();

        string GetProjectName();
        int GetProjectID();

        int GetWorkingHourID();

        void SetProjectName(string projectName);

        void SetWorkingHourID(int workingHourID);

        /// <summary>
        /// Sets the total work.
        /// </summary>
        /// <param name="t">The t.</param>
        void SetTotalWork(int t);

        /// <summary>
        /// Gets the path to save task list.
        /// </summary>
        /// <returns></returns>
        String GetPathToSaveTaskList();

        String GetPathToLoadSystemConfig();

        void SetWorkingHourName(List<String> workingHourName);

        void SetProjectNamesForDDL(List<String> projectName);

        int GetActualWork();

        void SetActualWork(int actualMinuteswork);

        int GetRemainingTime();

        void SetRemainingTime(Double remainingTime);

        void SetStartDate(DateTime startDate);

        void SetEndDate(DateTime endDate);

        void SetTaskListPrecedence(List<int> taskPrecedenceIDs);

        void SetTaskExternalConstraint(string constraintName, DateTime constraintDate);

        int GetStatusID();

        void SetStatusID(int theIndex);


        DateTime GetDueDate();

        DateTime getStartOnOrAfter();

        string GetNotes();
    }
}
